package com.jiayang.hhotel.presenter;

import com.jiayang.hhotel.R;
import com.jiayang.hhotel.bean.Constant;
import com.jiayang.hhotel.bean.InfoModel;
import com.jiayang.hhotel.bean.RoundsModel;
import com.jiayang.hhotel.net.Api;
import com.jiayang.hhotel.ui.RoundsActivity;
import com.jiayang.hhotel.util.CommonUtil;
import com.jiayang.hhotel.util.LogUtil;
import com.jiayang.hhotel.util.ToastUtil;

import cn.droidlover.xdroidmvp.mvp.XPresent;
import cn.droidlover.xdroidmvp.net.ApiSubscriber;
import cn.droidlover.xdroidmvp.net.NetError;
import cn.droidlover.xdroidmvp.net.XApi;

/**
 * Created by Administrator on 2017/5/18 0018.
 * 查房页面逻辑类
 */

public class RoundsPresenter extends XPresent<RoundsActivity> {

    /**
     * 获取查房列表
     * @param mpLanguage 语言
     * @param mpOperation 0:当前; 1：历史
     * @param page 页数
     */
    public void asyncData(int mpLanguage,int mpOperation,int page){
        Api.getHomeSer().getRoundsList(Constant.PHONE,mpLanguage,mpOperation,1,page)
                .compose(XApi.<RoundsModel>getApiTransformer())
                .compose(XApi.<RoundsModel>getScheduler())
                .compose(getV().<RoundsModel>bindToLifecycle())
                .subscribe(new ApiSubscriber<RoundsModel>() {
                    @Override
                    protected void onFail(NetError error) {
                        getV().sealPic(error.getType());
                    }

                    @Override
                    public void onNext(RoundsModel Model) {
                        LogUtil.showLog("查房列表="+Model.toString());
                        switch (Model.getState()){
                            case 9://请求成功
                                getV().setAdapter(Model.getPCheckRoomListDtos());
                                break;
                            case -1://失败
                                getV().sealPic(-1);
                                break;
                            case 1002://没有数据
                                getV().sealPic(1002);
                                break;
                        }
                    }
                });
    }

    /**
     * 按钮点击
     * @param mpLanguage 语言
     * @param mpSerial 点击的按钮（0-开始、1-完成）
     * @param mpMark1 是否使用物品（0-未使用，1-使用）
     * @param mpMark2 是否使用酒水（0-未使用，1-使用）
     * @param mpMark3 是否使用洗衣（0-未使用，1-使用）
     * @param mpMark4 预留
     * @param mpMark5 预留
     */
    public void btClick(int mpLanguage, final int mpSerial, int mpMark1, int mpMark2, int mpMark3, int mpMark4, int mpMark5){
        Api.getHomeSer().checkClick(Constant.PHONE,mpLanguage,0,mpSerial,mpMark1,mpMark2,mpMark3,mpMark4,mpMark5)
                .compose(XApi.<InfoModel>getApiTransformer())
                .compose(XApi.<InfoModel>getScheduler())
                .compose(getV().<InfoModel>bindToLifecycle())
                .subscribe(new ApiSubscriber<InfoModel>() {
                    @Override
                    protected void onFail(NetError error) {
                        CommonUtil.dismissProgressDialog(getV());
                        ToastUtil.Toast(getV().getString(R.string.net_error),getV());
                    }

                    @Override
                    public void onNext(InfoModel Model) {
                        CommonUtil.dismissProgressDialog(getV());
                        switch (Model.getState()){
                            case 9://请求成功
                                switch (mpSerial){
                                    case 0://开始查房
                                        ToastUtil.Toast(getV().getString(R.string.start_rounds),getV());
                                        break;
                                    case 1://完成
                                        ToastUtil.Toast(getV().getString(R.string.rounds_finish),getV());
                                        break;
                                }
                                break;
                            case -1://失败
                                ToastUtil.Toast(getV().getString(R.string.service_error_contract_manager),getV());
                                break;
                        }
                    }
                });
    }
}
